package test

import sil.Silabeador;
import sil.Palabra;

class FraseadorTest extends GroovyTestCase
{
  def f = new sil.Fraseador()

  void testFrasear()
  {
    def frases = f.frasear("hola. qué tal?\npues bien, no sé\n\nno va mal")
    assert(frases.size()==4)
    assert(frases[0]=="hola")
    assert(frases[1]=="qué tal?")
    assert(frases[2]=="pues bien, no sé")
    assert(frases[3]=="no va mal")
  }
  
  void testPalabrear()
  {
    def words = f.palabrear("Hola, ¿qué tal? pues bien, no sé, no va mal: buen agüero")
    assert(words.size()==12)
    def int i = 0
    assert(words[i++].palabra=='hola')
    assert(words[i++].palabra=='qué')
    assert(words[i++].palabra=='tal')
    assert(words[i++].palabra=='pues')
    assert(words[i++].palabra=='bien')
    assert(words[i++].palabra=='no')
    assert(words[i++].palabra=='sé')
    assert(words[i++].palabra=='no')
    assert(words[i++].palabra=='va')
    assert(words[i++].palabra=='mal')
    assert(words[i++].palabra=='buen')
    assert(words[i++].palabra=='agüero')
  }
  
  void testNumSilabas()
  {
    def frase = f.palabrear('¿Qué es la vida?, un frenesí')
    assert(f.cuentaSilabas(frase)==9+1)
    frase = f.palabrear('sin habérmelo pensado')
    assert(f.cuentaSilabas(frase)==8)
    frase = f.palabrear('la virgen américa')
    assert(f.cuentaSilabas(frase)==7-1)
  }
  
  void testVersificar()
  {
    def estrofa = "El que pudo lo que quiso\ncon los dados por tutores,\ncomo delincuente hoy muere;\ndadle limosna, señores"
    def versos = f.versificar(estrofa)
    assert(versos.size()==4)
    assert(versos[0].silabas==8)
    assert(versos[1].silabas==8)
    assert(versos[2].silabas==8)
    assert(versos[3].silabas==8)
  }
}
